// 请求 医院列表 参数的接口
export interface ReqGetHospitalListParams{
    page:number, //当前页码
    limit:number,//每页数量
    hoscode?:string,//医院编码
    hosname?:string,//医院名称
    hostype?:string,//医院类型
    provinceCode?:string, //省
    cityCode?:string,   //市
    disstrictCode?:string,  //  区
    status?:0 | 1     //  0  未上线  1 已上线
}

//  单个医院部分数据接口
export interface hospitalsomeType{
  "id": string,   //医院id
  "createTime": string,  //医院创建时间
  "updateTime": string,  // 医院修改时间
  "isDeleted": number,   //是否删除
  "param": {
    "hostypeString": string,  //  医院 等级
    "fullAddress": string  // 医院地址
  },
  "hoscode": string,  //医院编号
  "hosname": string,  // 医院名称
  "hostype": string,   // 医院类型
  "provinceCode": string,   // 省 
  "cityCode": string,  // 市
  "districtCode": string,// 区
  "address": string,  // 地址
  "logoData": string,   //logo  base64
  "intro": string,  // 医院介绍
  "status": 0 | 1,    //医院 上下线 状态
  "route":string   //乘车路线
}


export interface HospitalbookingRule {
  "cycle": number,  //  放号时间
  "releaseTime": string,  //开始时间
  "stopTime": string,  //  结束时间
  "quitDay": number,  //  退号  
  "quitTime": string,  //退号时间
  "rule": string[]  //  取号地点
}


//  单个医院数据 的 接口
export interface HospitalItemType extends hospitalsomeType {
  "bookingRule": HospitalbookingRule
}

//  声明多个医院的 数据  的接口
export type HospitalListType = HospitalItemType[];

// 声明 完整 的医院列表返回 的 数据 类型
export interface ReqGetHospitalListResponse{
    content:HospitalListType,  //医院列表数据
      "totalPages": number,  // 总的页数
      "totalElements": number,  //  总条数
      "last": false,     //  是否是最后一页
      "first": true,    //   是否是第一页
}

//声明省 、市、区 类型
export interface ProvinceItem{
  "id": number,   // id
  "createTime": string,  //创建时间
  "updateTime": string,  //更新时间
  "isDeleted": number,   //  是否删除
  "parentId": number,   //  父 id
  "name": string,  //  省 名称
  "value": string,   //  行政 编码
  "dictCode": null,   //  
  "hasChildren": true   //  是否有下一级
}

//省、市、区 列表数据接口
export type ProvinceList = ProvinceItem[];


// 完整的医院详情 接口
export interface HospitalShowType{
  hospital:hospitalsomeType,
  bookingRule:HospitalbookingRule
}


// 医院 科室 响应 单个数据结构 接口
export interface DepartmentItem{
  depcode:string,   //科室编号
  depname:string   //科室名称
  disabled?:boolean  // 自定义 属性 ，用来禁用一级科室
  children:null |  DepartmentList    
}

//医院科室响应 复数  结构 接口
export type DepartmentList = DepartmentItem[];


//医院排班 的排班规则的请求 params 参数 接口
export interface  ReqGetScheduleRuleListParams{
  page:number,   //当期页码
  limit: number //每页条数
  hoscode:string   // 医院编号
  depcode:string   //科室编号
}
//医院排班 的排班规则的响应单个 数据 接口
export interface ScheduleRuleItem{
      "workDate": string,   //排班日期
      "workDateMd": null,   
      "dayOfWeek": string,   // 排班星期
      "docCount": number,    // 医生数量
      "reservedNumber": number,   //挂号费
      "availableNumber": number,  // 剩余号源数
      "status": null
}

//排班规则  复数
export type ScheduleRuleList = ScheduleRuleItem[];

//医院排班 规则 完整的响应数据 接口
export interface ReqGetHospitalRuleListResponse{
  total:number  // 总的规则数
  bookingScheduleList:ScheduleRuleList  //预约规则数据
  baseMap:{
      hosname:string   //医院名称
  }
}

//根据排班日期  获取 医生 排班的 请求参数 接口
export interface ReqGetScheduleListParams{
  hoscode:string   // 医院编号
  depcode:string   //科室编号
  workDate: string  //排班日期
}

//  设置 医生排班信息 单个 数据接口
export interface ScheduleItem{
    "id": string,   //医生id
    "createTime":string,  //创建时间
    "updateTime": string,  //更新时间
    "isDeleted": number,  // 是否删除
    "param": {
      "dayOfWeek": string,  // 排班星期
      "depname": string,  //  科室名称
      "hosname": string  // 医院名称
    },
    "hoscode": string,  // 医院编号
    "depcode":string  //科室编号
    "title": string  // 医生职称  
    "docname": string  //医生名字
    "skill": string,  // 医生擅长技能
    "workDate": string,  // 排班日期
    "workTime": number,   //  工作时间
    "reservedNumber": number,  // 号源总数
    "availableNumber": number,  //剩余号源
    "amount": number,  //挂号费
    "status": number,  //状态
    "hosScheduleId": string   // xxx
}

// 设置 医生排班信息 复数多个 数据接口
export type ScheduleList = ScheduleItem[];

